[树莓派][GPIO][风扇][断点直播]树莓派4B加装风扇并实现风力和CPU温度控制 您所在的位置:网站首页 树莓派4b win10 35寸 [树莓派][GPIO][风扇][断点直播]树莓派4B加装风扇并实现风力和CPU温度控制

[树莓派][GPIO][风扇][断点直播]树莓派4B加装风扇并实现风力和CPU温度控制

2024-01-05 04:35| 来源: 网络整理| 查看: 265

树莓派4B加装风扇并实现风力和CPU温度控制 一、想法及摘要二、2021-04-10更新(关于风扇口接GPIO口)三、2021-04-19更新(各种设备已到货,并复习了下高中知识)四、2021-04-24更新(成功点亮LED)测试三极管 五、2022-05-15更新焊接 五、2022-09-11更新

一、想法及摘要

淘了个二手树莓派4B 然后刷了 Ubuntu20.04 Server lts 版系统 装了BT面板,搭了个网站 唯一一点不足是不能从外网访问80端口,并且外网IP不固定 软件方面搞的差不多了,就像搞搞硬件 就像想给它装个风扇,根据引脚图 引脚图 在这里插入图片描述 把买回来的风扇装在物理引脚 4、6处,风扇能正常运转,注意正负极 在这里插入图片描述 转的太快,看不见扇叶 把正级接在3.3V上转的慢 为了测试风扇的作用,我实时查询CPU温度 cat /sys/class/thermal/thermal_zone0/temp 这是获取CPU温度的 watch -n 0.1 cat /sys/class/thermal/thermal_zone0/temp 这是实时获取CPU温度的 获取到的温度精度是3位数 在这里插入图片描述 然后风扇通电(千万注意插入接口时不要短路,我不小心短路了4-6接口,然后就冒火花系统重启了,万幸机器没坏,后来查资料发现5V电压口好像直连TypeC电源) 在这里插入图片描述 通电时间大约是我写完上面一段话的时间,然后温度就稳定在35以内,在31到53之间跳,我刚好截了个大的。 从数据来看,散热效果蛮好的 1分钟左右下降10°+ 但是一直让风扇这么转也不是个事 一来太吵,二来费电 然后我想让温度控制风扇,岂不美哉 然后也不能用风扇开启阈值的方式做 因为这会引入一个问题,我称之为 “快开关问题” 什么是快开关问题呢,在软件领域还是比较常见的 也许它有专业术语,但恕我经验少, 快开关问题是指在一个条件过渡中,当这个条件位于一个临界值 这个过渡就会在这个临界值附近疯狂转换 举个例子: 在前端中,写一个过渡动画,这个过渡动画的触发条件是当鼠标位于此元素上,然后过渡动画位移+1,当鼠标不再此元素,位移-1,然后把鼠标放置0-1之间,这个过渡就会疯狂转换,在这里过渡泛指属性的变化,如位置、角度等,+1-1是指过渡标量。可能说的不直观,直接看图: 在这里插入图片描述 前段时间我在U3D开发中又遇到了这个问题,但是已经上升到三维空间了,不过最终通过直线和斜率问题解决了,在此不细说,数学是真的有用。 所以不能简单的通过阈值去实现,因为阈值的真值和温度相关,而风扇的启动和阈值相关,而温度又与风扇的启动相关,也许快开关是一系列闭环且又互相相关的集合引起的,嗯,说不定可以抽象成数学公式,^ _ ^ 不过这个问题可以解决,把快开关转变成慢开关,,, 然后再实现风力控制,实则控制电压就行,最后封装成脚本开机执行,期间可能会写到一些控制算法;

但想归想,还有很多问题要解决 下面将不定时直播

二、2021-04-10更新(关于风扇口接GPIO口)

首先我想的是实现风扇的电压可控 然后我查了一大堆资料 没查出个所以然 只学会了在控制台控制GPIO接口的一些操作 至少可以操作GPIO口的输入输出模式和输入输出电平(输入电平只读) 我先是把风扇正极接到物理4口,负极接入物理6口 然后操作代码 su root #获取root权限 cd /sys/class/gpio/ #进入GPIO操作目录 echo 4 > export #挂载4号接口 cd gpio4 #进入4接口操作目录 echo out > direction #设置接口为输出还是输入 echo 1 > value #设置接口输出值 首先我们进入GPIO操作目录 然后挂载一个接口 方法即为向export重定向一个接口号 因为Linux万物皆文件,所以所有的操作都可以用文件去解决 接着就会在当前目录生成一个接口的文件夹,命名为 gpio + 接口号 然后进入目录,ls一下可以看到一些文件,以下是常用命令 direction 更改输入输出方向;value 设置获取接口电平; 最后不要忘记使用 echo 接口号 > unexport 来卸载接口 知道了如何操作接口那就好办,我直接挂载了4号接口,6号因为是地线,而且我插着直接能用,不用管 然后想着4号是正极并且能直接驱动,那么4号接口应该是高电平 然而当我输出之后,结果并不是想象的那样 而且我更改value值也不会有任何反应 接着我查询资料,发现在这里挂载的接口号,不是物理号,而是BCM编码 但是接口里边电源接口并没有BCM接口号,这就让我很为难 最后发现有派友说2、4这些电源接口可以直接给派供电 那就说明派的2、4接口可能直接和TypeC充电接口相连 如果这样的话,那么派好像并不能控制电源接口 所以在GPIO工作目录使用BCM编码,自动屏蔽掉电源口 事情变得棘手起来了 我没法控制风扇电压了 不对,既然这里GPIO接口value值只能输入0、1,那么接口就只有布尔值,也就是说只有高低电平,那岂不是只是数字电路,这样控制电压大小就可以不用想了 当然也可以实现数字电路信息控制模拟信号,使电压可随意变动,可代价有点大 那就先实现可控制风扇的启动与否吧 既然我们能控制GPIO的信号接口,然后根据查到的资料,GPIO口电压基本稳定在3.3V,虽然不能让我的风扇跑满,但至少能制动 接着我接风扇正极口到GPIO.0口,也就是BCM 17接口,然后我疯狂的设置value值 风扇压根不理我,动都不动一下 这时候我并不知道export需要的是BCM编码,然后我就把各种编码全部尝试了一遍 依旧不行,没有一点起色,这时我怀疑淘到了换的板子 第二天一早,在睡梦中还依稀得想到底是什么原因, 起来打开电脑,搜索各种资料 突然看到有人说GPIO接口的电流是多少 然后我开始怀疑是否是GPIO接口没有足够电流为我的风扇驱动 我查看我风扇,5V==0.6W 也就是说,我的风扇需要0.12A的电流驱动,120mA 我接着辛辛苦苦得找树莓派GPIO的输出电流 结果为 在这里插入图片描述 默认驱动强度为8mA,最大16mA 然后我突然明白了,我这是让蚂蚁拉大车呢 细想之后也就明白了 一般GPIO口用作传输数字信息,根本用不到那么大电流 反而徒增功耗 你以为到这里就结束了? 不不不,虽是这么说,但是我还是不能够知道我到底能不能控制GPIO口 但是上哪找这么小工作电流且又反馈的东西去 然后我生成了一个奇怪的想法 既然网络都有回环地址,那我也回环下 让树莓派自己发自己收 示意图: 在这里插入图片描述 我让18发17收 但是我也没什么工具呀 接着就展现了我的就地取材: 在这里插入图片描述 在我眼前的感觉能用上的东西 卡片用于绝缘,掏耳朵的想用作导线,结果发现太薄,就用细螺丝刀 咱先测试下这两个接口: 在这里插入图片描述 先进入18口设置为输出模式,并查看电平为0 然后进入17口设置为输入模式,参看电平为0 就说明18口没电压输出,17口也没有电压输入 然后更改18口电压: 在这里插入图片描述 可以看见我更改了18口的电平为高,但是17并没有变化 并且我尝试更改17电平,错误提示我说操作不允许, 也就是输入口不能手动更改电平 接着我利用手头可用工具,做了个硬核跳线 在这里插入图片描述 然后我们直接查看17电平: 在这里插入图片描述 果然不出所料,然后置18电平为低 在这里插入图片描述 在这里,我想试一下0.5是否能行,结果是不行 随后的输出都符合预期 今天就到这,下一步就是先恶补电路知识 计划使用二极管三极管控制双路输出 实现5V和3.3V切换 在这一刻,能让我有一种非常强的成就感^ 0 ^ 就像刚学编程写的第一句 HelloWorld一样 其实笔者挺喜欢硬件的,屋里书桌上一大堆拆下来的电子元件和电路板 可那时候也就初中,搞不懂啊,纯属喜欢,也没有条件学习 时隔这么多年,我终于又重新拾起硬件这份兴趣 在此对我第一个树莓派小工程开启玩机直播 同时也下单了各种设备,希望我这实习工资能撑住这无底洞,哈哈哈…

三、2021-04-19更新(各种设备已到货,并复习了下高中知识)

在这里插入图片描述 设备上周就到货了,一直没时间折腾,恰巧又感冒发烧,周六折腾了一天,发现以前学的东西全忘了,哈哈哈哈 先是回顾了下电阻 在这里插入图片描述 虽然五个电阻烧焦了,但是我成功的把灯泡点亮了 PS:电烙铁果然是便宜没好货 这个电路是五个10Ω电阻并联了一个150欧姆和一个2V20mA的串联电路 因为我现在的电源是5V2.4A,直接接LED会直接烧坏,LED的功率是0.06W 然后我给LED分压分流,我发现电阻这个东西真奇怪,一般电路都是串联分压,并联分流,电阻串联却分压又分流,分压大小在网上查说是整个电路电阻的比值, 那五个并联10Ω的电阻应当分流2.38A,几乎分走了全部电流,然而他们的功率是1/4W,但他们现在的承受功率是2.38W,所以一会会就直接烧成黑炭似的 由于电阻很快就烧的很烫,就不好测每个元件的电压电流 在这之前,也学习了下数字万用表的使用方法,现在是电阻和二极管基本上搞明白了,三极管和电容还待研究, 实干主义确实理解更深刻,之前公式记一大堆,却不会用。

四、2021-04-24更新(成功点亮LED)

话不多说,看图 先连上18针脚,然后修改方向模式 修改value,LED的亮灭就会和value对应 在这里插入图片描述 电压和电流: 在这里插入图片描述 基本都正常,不过有一点很疑惑, 把电流表调到200m档位,测出来尽然80多mA, 误差有4倍之多,也不知道是不是刚买回来不会用把机子烧了, 不多鳄鱼夹是真好用,电烙铁太容易氧化,用砂纸打磨就会很吸锡,

测试三极管

在这里插入图片描述 用的是S9013三极管,参数:

引脚参数 参数:结构 NPN 集电极-发射极电压 25V 集电极-基极电压 45V 发射极-基极电压 0.7V 集电极电流Ic Max 0.5A 耗散功率 0.625W 工作温度 -55℃ ~ +150℃ 特征频率 150MHz 放大倍数 D64-91 E78-122 F96-135 G122-166 H144-220 I190-300 主要用途 放大电路。

我主要看了电流和电压这块在环境范围,别的也看不懂 在这里插入图片描述 18号为常高电平, 然后开关4号,能控制LED, 不过有一点迷惑的是,LED电流只有0.12mA了,光亮很微弱 寻思着会不会是放大系数的问题, 但是我这个基极也有16mA呐,就算GPIO最大20mA, 那两个接口应该也10mA啊, 这样发射级最大能通过10 * 倍数的电流, 然后我大电流电源是10mA,那会全通过, 不至于0.12mA, 接着我测电路发现,是鳄鱼夹的问题, 它接触面就一个牙齿尖,我用背面平整的地方接入基极, LED就发出了耀眼的光芒 以上证明了三极管的可行性, 那么回到主题,我可以把18接口换为5V接口,LED换为风扇, 就可以控制风扇的运转, 你可能会想,直接用GPIO控制风扇不就好了, 记住,前文解释了,GPIO电流不足以驱动风扇, 所以需要用三极管小电流控制大电流,

五、2022-05-15更新

殇璃计划五周年 不负前程 未来可期

有前辈提意见,使用PWM调速风扇会更好,确实非常方便,而且加有一条风速数据线。 但是我想以目前配置环境,建设一套风控系统。但还是非常感谢提议。

由于对电路基础薄弱,本着对技术循序渐进,目前只使用三极管电阻等基本原件实现大小风,至少需要四条线,而实现定速开关控制,只需要三条线。 对于大小风电路图如图: 请添加图片描述 S1控制5V电压;S2控制3V电压。 相当于两条信号线都控制控制三极管。S2和S1之间加二极管,使S1开关无法与R3形成回路。 R2充当电机,S2闭合后使R3形成回路,分走电机电压。 四条线分别为:正极、负极、5V信号线、3V信号线 控制逻辑为: 仅当5V信号线高电平时,则电机获得5V电压;仅当3V信号线高电平时,电机获得3V电压; 当两信号线同为高电平时,电机获得3V电压;当两信号线同为低电平时,电机不获得电压。 如果只实现定速开关控制,则去掉上图的S2、二极管、R3即可。

焊接

使用 S9013 NPN型三极管,最大电流可达 0.5A。 请添加图片描述 测试发现驱动不了风扇,用万用表排查时,发现: 集电极和接地为5V,集电极和发射极为3V左右,基极和接地为3V左右,发射级和接地为2V左右 发射信号,三极管能正常开关,但是电压没有在预料之中,不能驱动风扇也是因为发射极电压太小。

今天就先到这,过后学习一下三极管相关知识,可能是我三极管选的不对 电路图也有问题,在画的时候信号线和供电共用电压的,实际上这并不能工作 在算电阻时,计算比较麻烦,所以想顺便开发一个电阻计算程序。

五、2022-09-11更新

今天测试了一下,发现是我把负载接错了位置。 在npn形三极管中,负载应该在集电极,发射机应该接地。 之前是因为我把风扇接在发射集,导致风扇电压过低,大概2V左右,而基极电压是3.3V,集电极是5V,所以我猜测,基极电压加发射集电压等于集电极,集电极和基极的电流等于发射极。 请添加图片描述 其中红线为5V正极,黑色线为GND

怪我没有电路相关知识,这次乌龙不亚于把main写成mian 😃 三极管s9013还是可以作为开关使用的,我需要下去好好研究下三极管的特性,学习学习电子信息。

直播暂时告一段落,待我把电路焊接好,学习有果时,再来研究频率控制电压,用以控制风速,做成无级调速。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有